package org.tea.inventory.domain.tea;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 供应商合同对象 supplier_contract
 * 
 * @author dongxb
 * @date 2025-04-14
 */
@ApiModel(value = "供应商合同对象")
@Data
@NoArgsConstructor
public class SupplierContract implements Serializable
{
    private static final long serialVersionUID = 1L;

    /** 主键自动递增 */
    private Long id;

    /** 合同id */
    @ApiModelProperty(value = "合同id")
    private String contractId;

    /** 鍚堝悓缂栧彿 */
    @ApiModelProperty(value = "鍚堝悓缂栧彿")
    private String contractNum;

    /** 鍚屽悎鍚嶇О */
    @ApiModelProperty(value = "鍚屽悎鍚嶇О")
    private String contractName;

    /** 渚涘簲鍟咺D */
    @ApiModelProperty(value = "渚涘簲鍟咺D")
    private String supplierId;

    /** 合同签署公司 */
    @ApiModelProperty(value = "合同签署公司")
    private String contractCompany;

    /** 订签日期 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "订签日期")
    private Date signTime;

    /** 缁撴潫鏃ユ湡 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "缁撴潫鏃ユ湡")
    private Date endTime;

    /** 鍚堝悓绫诲瀷 1閲囪喘鍚堝悓 2鏈嶅姟鍚堝悓 */
    @ApiModelProperty(value = "鍚堝悓绫诲瀷 1閲囪喘鍚堝悓 2鏈嶅姟鍚堝悓")
    private String contractType;

    /** 鏀舵敮绫诲瀷 1鏃犻噾棰?2鏀跺叆 3鏀嚭 */
    @ApiModelProperty(value = "鏀舵敮绫诲瀷 1鏃犻噾棰?2鏀跺叆 3鏀嚭")
    private String paymentType;

    /** 额金 */
    @ApiModelProperty(value = "额金")
    private BigDecimal contractMoney;

    /** 币种 1人民币 2美元 */
    @ApiModelProperty(value = "币种 1人民币 2美元")
    private String currency;

    /** 添加人 */
    @ApiModelProperty(value = "添加人")
    private String addUser;

    /** 添加时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "添加时间")
    private Date addTime;

    /** 修改人 */
    @ApiModelProperty(value = "修改人")
    private String modifyUser;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间")
    private Date modifyTime;

    /** 删除标记0正常 1删除 */
    private String delFlag;

    /** 公司id */
    @ApiModelProperty(value = "公司id")
    private String companyId;

    /** 客户 */
    @ApiModelProperty(value = "客户")
    private String customerId;

    /** 合同类别 */
    @ApiModelProperty(value = "合同类别")
    private String contractCategory;

    /** 是否转包0否1是 */
    @ApiModelProperty(value = "是否转包0否1是")
    private String isSubcontract;

    /** 第三方 */
    @ApiModelProperty(value = "第三方")
    private String thirdParty;

    /**  */
    @ApiModelProperty(value = "")
    private String thirdParty2;

    /** 采购类型 */
    @ApiModelProperty(value = "采购类型")
    private String purchaseType;

    /** 是否关闭 0开启 1关闭 */
    @ApiModelProperty(value = "是否关闭 0开启 1关闭")
    private String isClose;

    /** 是否续约 0否1是 */
    @ApiModelProperty(value = "是否续约 0否1是")
    private String isRenewal;

    /** 合约续签提醒期限（月） */
    @ApiModelProperty(value = "合约续签提醒期限")
    private String renewalPeriod;

    /** 鏄惁鍙戦€佽繃寰呯淇℃伅0鍚?鏄? */
    @ApiModelProperty(value = "鏄惁鍙戦€佽繃寰呯淇℃伅0鍚?鏄?")
    private String isSendmessage;

    /** 1銆佷笟鍔℃枃浠?銆侀潪涓氬姟鏂囦欢 */
    @ApiModelProperty(value = "1銆佷笟鍔℃枃浠?銆侀潪涓氬姟鏂囦欢")
    private String isBusinessContract;

    /** 是否关联销售合同（0否1是） */
    @ApiModelProperty(value = "是否关联销售合同")
    private String isRelatedSales;

    /** 第三方客户 */
    @ApiModelProperty(value = "第三方客户")
    private String salesContract;

    /** 初始合同编号 */
    @ApiModelProperty(value = "初始合同编号")
    private String oldContract;

    /** 是否变更（0未变更1变更） */
    @ApiModelProperty(value = "是否变更")
    private String isChange;

    /** 数据来源  0系统1导入 */
    @ApiModelProperty(value = "数据来源  0系统1导入")
    private String isSystem;

    /** 部门 */
    @ApiModelProperty(value = "部门")
    private String department;

    /** 是否提交归档（0未提交1已提交） */
    @ApiModelProperty(value = "是否提交归档")
    private String isFiling;

    /** 是否立项（0未立项1已立项） */
    @ApiModelProperty(value = "是否立项")
    private String isProjectapproval;

    /**  */
    @ApiModelProperty(value = "")
    private String thirdParty3;

    /** 鍚堝悓鐘舵€?0鏈綊妗?宸插綊妗?宸茶繃鏈燂級 */
    @ApiModelProperty(value = "鍚堝悓鐘舵€?0鏈綊妗?宸插綊妗?宸茶繃鏈燂級")
    private String contractState;

    /** 是否允许报销: 0:否 1:是 */
    @ApiModelProperty(value = "是否允许报销: 0:否 1:是")
    private String isExpense;

    /**  */
    @ApiModelProperty(value = "")
    private String stampAuditId;

    /** 关闭原因 */
    @ApiModelProperty(value = "关闭原因")
    private String closeReason;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setContractId(String contractId) 
    {
        this.contractId = contractId;
    }

    public String getContractId() 
    {
        return contractId;
    }

    public void setContractNum(String contractNum) 
    {
        this.contractNum = contractNum;
    }

    public String getContractNum() 
    {
        return contractNum;
    }

    public void setContractName(String contractName) 
    {
        this.contractName = contractName;
    }

    public String getContractName() 
    {
        return contractName;
    }

    public void setSupplierId(String supplierId) 
    {
        this.supplierId = supplierId;
    }

    public String getSupplierId() 
    {
        return supplierId;
    }

    public void setContractCompany(String contractCompany) 
    {
        this.contractCompany = contractCompany;
    }

    public String getContractCompany() 
    {
        return contractCompany;
    }

    public void setSignTime(Date signTime) 
    {
        this.signTime = signTime;
    }

    public Date getSignTime() 
    {
        return signTime;
    }

    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }

    public void setContractType(String contractType) 
    {
        this.contractType = contractType;
    }

    public String getContractType() 
    {
        return contractType;
    }

    public void setPaymentType(String paymentType) 
    {
        this.paymentType = paymentType;
    }

    public String getPaymentType() 
    {
        return paymentType;
    }

    public void setContractMoney(BigDecimal contractMoney) 
    {
        this.contractMoney = contractMoney;
    }

    public BigDecimal getContractMoney() 
    {
        return contractMoney;
    }

    public void setCurrency(String currency) 
    {
        this.currency = currency;
    }

    public String getCurrency() 
    {
        return currency;
    }

    public void setAddUser(String addUser) 
    {
        this.addUser = addUser;
    }

    public String getAddUser() 
    {
        return addUser;
    }

    public void setAddTime(Date addTime) 
    {
        this.addTime = addTime;
    }

    public Date getAddTime() 
    {
        return addTime;
    }

    public void setModifyUser(String modifyUser) 
    {
        this.modifyUser = modifyUser;
    }

    public String getModifyUser() 
    {
        return modifyUser;
    }

    public void setModifyTime(Date modifyTime) 
    {
        this.modifyTime = modifyTime;
    }

    public Date getModifyTime() 
    {
        return modifyTime;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    public void setCompanyId(String companyId) 
    {
        this.companyId = companyId;
    }

    public String getCompanyId() 
    {
        return companyId;
    }

    public void setCustomerId(String customerId) 
    {
        this.customerId = customerId;
    }

    public String getCustomerId() 
    {
        return customerId;
    }

    public void setContractCategory(String contractCategory) 
    {
        this.contractCategory = contractCategory;
    }

    public String getContractCategory() 
    {
        return contractCategory;
    }

    public void setIsSubcontract(String isSubcontract) 
    {
        this.isSubcontract = isSubcontract;
    }

    public String getIsSubcontract() 
    {
        return isSubcontract;
    }

    public void setThirdParty(String thirdParty) 
    {
        this.thirdParty = thirdParty;
    }

    public String getThirdParty() 
    {
        return thirdParty;
    }

    public void setThirdParty2(String thirdParty2) 
    {
        this.thirdParty2 = thirdParty2;
    }

    public String getThirdParty2() 
    {
        return thirdParty2;
    }

    public void setPurchaseType(String purchaseType) 
    {
        this.purchaseType = purchaseType;
    }

    public String getPurchaseType() 
    {
        return purchaseType;
    }

    public void setIsClose(String isClose) 
    {
        this.isClose = isClose;
    }

    public String getIsClose() 
    {
        return isClose;
    }

    public void setIsRenewal(String isRenewal) 
    {
        this.isRenewal = isRenewal;
    }

    public String getIsRenewal() 
    {
        return isRenewal;
    }

    public void setRenewalPeriod(String renewalPeriod) 
    {
        this.renewalPeriod = renewalPeriod;
    }

    public String getRenewalPeriod() 
    {
        return renewalPeriod;
    }

    public void setIsSendmessage(String isSendmessage) 
    {
        this.isSendmessage = isSendmessage;
    }

    public String getIsSendmessage() 
    {
        return isSendmessage;
    }

    public void setIsBusinessContract(String isBusinessContract) 
    {
        this.isBusinessContract = isBusinessContract;
    }

    public String getIsBusinessContract() 
    {
        return isBusinessContract;
    }

    public void setIsRelatedSales(String isRelatedSales) 
    {
        this.isRelatedSales = isRelatedSales;
    }

    public String getIsRelatedSales() 
    {
        return isRelatedSales;
    }

    public void setSalesContract(String salesContract) 
    {
        this.salesContract = salesContract;
    }

    public String getSalesContract() 
    {
        return salesContract;
    }

    public void setOldContract(String oldContract) 
    {
        this.oldContract = oldContract;
    }

    public String getOldContract() 
    {
        return oldContract;
    }

    public void setIsChange(String isChange) 
    {
        this.isChange = isChange;
    }

    public String getIsChange() 
    {
        return isChange;
    }

    public void setIsSystem(String isSystem) 
    {
        this.isSystem = isSystem;
    }

    public String getIsSystem() 
    {
        return isSystem;
    }

    public void setDepartment(String department) 
    {
        this.department = department;
    }

    public String getDepartment() 
    {
        return department;
    }

    public void setIsFiling(String isFiling) 
    {
        this.isFiling = isFiling;
    }

    public String getIsFiling() 
    {
        return isFiling;
    }

    public void setIsProjectapproval(String isProjectapproval) 
    {
        this.isProjectapproval = isProjectapproval;
    }

    public String getIsProjectapproval() 
    {
        return isProjectapproval;
    }

    public void setThirdParty3(String thirdParty3) 
    {
        this.thirdParty3 = thirdParty3;
    }

    public String getThirdParty3() 
    {
        return thirdParty3;
    }

    public void setContractState(String contractState) 
    {
        this.contractState = contractState;
    }

    public String getContractState() 
    {
        return contractState;
    }

    public void setIsExpense(String isExpense) 
    {
        this.isExpense = isExpense;
    }

    public String getIsExpense() 
    {
        return isExpense;
    }

    public void setStampAuditId(String stampAuditId) 
    {
        this.stampAuditId = stampAuditId;
    }

    public String getStampAuditId() 
    {
        return stampAuditId;
    }

    public void setCloseReason(String closeReason) 
    {
        this.closeReason = closeReason;
    }

    public String getCloseReason() 
    {
        return closeReason;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("contractId", getContractId())
            .append("contractNum", getContractNum())
            .append("contractName", getContractName())
            .append("supplierId", getSupplierId())
            .append("contractCompany", getContractCompany())
            .append("signTime", getSignTime())
            .append("endTime", getEndTime())
            .append("contractType", getContractType())
            .append("paymentType", getPaymentType())
            .append("contractMoney", getContractMoney())
            .append("currency", getCurrency())
            .append("addUser", getAddUser())
            .append("addTime", getAddTime())
            .append("modifyUser", getModifyUser())
            .append("modifyTime", getModifyTime())
            .append("delFlag", getDelFlag())
            .append("companyId", getCompanyId())
            .append("customerId", getCustomerId())
            .append("contractCategory", getContractCategory())
            .append("isSubcontract", getIsSubcontract())
            .append("thirdParty", getThirdParty())
            .append("thirdParty2", getThirdParty2())
            .append("purchaseType", getPurchaseType())
            .append("isClose", getIsClose())
            .append("isRenewal", getIsRenewal())
            .append("renewalPeriod", getRenewalPeriod())
            .append("isSendmessage", getIsSendmessage())
            .append("isBusinessContract", getIsBusinessContract())
            .append("isRelatedSales", getIsRelatedSales())
            .append("salesContract", getSalesContract())
            .append("oldContract", getOldContract())
            .append("isChange", getIsChange())
            .append("isSystem", getIsSystem())
            .append("department", getDepartment())
            .append("isFiling", getIsFiling())
            .append("isProjectapproval", getIsProjectapproval())
            .append("thirdParty3", getThirdParty3())
            .append("contractState", getContractState())
            .append("isExpense", getIsExpense())
            .append("stampAuditId", getStampAuditId())
            .append("closeReason", getCloseReason())
            .toString();
    }
}
